#ifndef TOWER_H_
#define TOWER_H_

#include "base/GLStructure.h"
#include "base/GLObject.h"
#include "base/Cube.h"

class Tower : public GLStructure {
private:
	std::list<GLObject*> components;
	float width;
	float height;
	float columnWidth;
	float latticeWidth;
	float topBorder;
	float topHeight;

	Cube* column1;
	Cube* column2;
	Cube* column3;
	Cube* column4;

	Cube* lattice1;
	Cube* lattice2;
	Cube* lattice3;
	Cube* lattice4;

	Cube* lattice5;
	Cube* lattice6;
	Cube* lattice7;
	Cube* lattice8;

	Cube* top;

public:
	Tower(GLuint programHandler, GLShaderConfig shaderConfig, float width, float height);
	~Tower();
	void updateComponents();
	void update (glm::mat4 viewMatrix, glm::mat4 modelMatrix);
};


#endif /* TOWER_H_ */
